Many conventional computers have a similar process for reaching a fully active state from a fully powered down state, also known as “booting.” Typically, booting is initiated by a computer's basic input output system (BIOS) when a user presses an ON/OFF switch. Generically, BIOS refers to software (or firmware) which interacts with a computer's hardware and with the computer's operating system (OS). BIOS is generally stored in ROM or some other type of nonvolatile memory, and a computer may have several different types of BIOS. For example, a computer may have a video adapter BIOS, a drive control BIOS, etc. The boot process is usually controlled by a system (or motherboard) BIOS. As part of the boot process, the system BIOS performs a number of low level tasks such as initializing the microprocessor, initializing various hardware, and performing various tests. The BIOS will then search for and begin loading the OS.
Once the boot process has been completed and the OS has been loaded, application programs may be started (or “launched”) by entering commands through the OS. In a computer having one of various versions of the WINDOWS OS (available from Microsoft Corporation of Redmond, Wash.), for example, a user can often instruct the OS to launch an application by selecting a screen icon corresponding to that application. In some limited circumstances, one or more applications may be automatically launched when the boot process completes. For example, a computer may boot to the last state occupied by the computer when previously shut down. In such a case, one or more applications that were running at shut-down might be automatically restarted by the OS. As another example, the OS may be configured to automatically launch one or more applications every time the computer is started. An example is the “startup list” of various versions of the WINDOWS OS. In none of these cases, however, is the user able to specify an application to be launched based on how the computer is started. Stated differently, the computer is not able to know the user's intent at the time the user turns on the computer. Instead, and assuming user wishes to launch some application not on a preconfigured startup list (or that was not running when the computer last shut down), the user must wait for the computer to complete the boot process and then indicate what is desired.
This can be significant. For example, many computers include hardware and software that permit a user to play back a previously recorded DVD, CD or other type of media. By inclusion of an appropriate tuner and other electronic components, many computers are also able to receive radio and/or television transmissions. As computers, and particularly laptop computers, become more advanced and more compact, and as the number of people owning and using computers continues to grow, these (and other) media playback functions become increasingly important. It is frequently desirable to make the media playback functionality of a computer more similar to that of consumer electronic devices that are dedicated to media playback (e.g., dedicated DVD players, televisions, radios, etc.). Instead of a user having to boot a computer and then select a media playback application, a user wishing to watch a DVD on that computer would often find it more convenient to simply put the DVD in the computer's DVD player and begin watching.
There have been some efforts in this regard to make computers more like dedicated media playback devices. One technique is to configure a computer for dual booting. More specifically, two separate OSs are installed on the computer in separate partitions of the hard drive (or one operating system may be installed in the hard drive and another OS may reside in firmware). One OS, which may be smaller and/or more specialized (e.g., Linux, or the WINDOWS CE OS available from Microsoft Corporation) is booted when the user only wishes to perform media playback. When the user wishes to use the computer for other purposes, the other OS (e.g. the WINDOWS XP OS) is booted.
A dual-boot solution presents several problems, however. Even though a first (or “primary”) OS and a second OS intended for media playback may operate in separate partitions, the media-playback OS may still have access to the file structure of the primary OS. This can have serious security and privacy implications, especially if the second OS is allowed to read and/or write data to the partition managed by the first OS. In such a case, any access control or other security mechanisms of the first OS can be bypassed by the second OS. On the other hand, disallowing cross-partition access also presents problems. If there is no cross-partition access, a user would not have full access to media files stored on another partition.
A dual-boot system can also pose significant burdens upon a computer manufacturer. For example, the primary OS (i.e., the OS used for conventional purposes and not limited to media playback) could be manufactured by one company, and the OS used for media playback may be manufactured by a second company or be an open-source product. If the two OSs are provided by separate companies, the computer manufacturer may be forced to pay two separate license fees. Even if one OS is open source, the computer manufacturer would usually bear the financial burden of any required modifications to the open source OS. The manufacturer would also be required to create duplicate media hardware drivers for each OS. Providing technical support, product updates and patches for two OSs could also be significantly more complex than is the case with a single OS.
Aside from the financial and security implications of installing and supporting two different OSs, a dual boot system is often unsatisfactory from a user perspective. In a dual-boot environment, a user must reboot or power down if he or she wishes to switch from a media-playback mode to a normal operating mode. This results in a transition from one OS to another which is abrupt and undesirable from a usability point of view. For example, pausing a movie to read a document, check e-mail or perform some other task would be cumbersome.
Several solutions to the above described challenges are described in commonly-owned, co-pending U.S. patent application Ser. No. 11/044,713 (filed Jan. 28, 2005 and titled “Direct Access to Media Playback), incorporated by reference herein (no admission is made herein regarding whether said application is prior art to the present invention). Among the solutions described in application Ser. No. 11/044,713 is the creation of a Human Interface Device (HID) event report in connection with a user actuation of a dedicated media playback button. Embodiments of the present invention offer a useful alternative to the solution in the Ser. No. 11/044,713 application. In some circumstances, for example, the software components needed for generation and processing of a HID report may not be present.